查看原文
其他

Go 紧急修复 crypto/tls 安全问题

Go 夜读 Go夜读 2021-07-13

刚刚 Go 团队紧急发布了 Go1.16.6 和 Go 1.15.14,本次更新内容修复一个安全问题。

详细描述如下:

当为协商(谈判)的参数提供了错误类型的证书时,crypto/tls 客户端可能会 panic。net/http 客户端执行 HTTPS 请求也会受到影响。panic 可以由攻击者触发在有特权的网络位置不访问服务器证书的私钥,只要是受信任的服务器的 ECDSA 或 Ed25519 证书存在 (或者可以颁发),或者客户端配置有 Config.InsecureSkipVerify 。

禁用所有 TLS_RSA 密码套件 (即 TLS 1.0-1.2 密码没有 ECDHE 的套件),以及 TLS 1.3 客户端不受影响。

对于安全问题, Go 团队紧急发版,目前更新的版本包括:go1.17(master), go1.16.6, go1.15.14

请受到影响的,赶紧更新。

接下来,我们来看看引发 panic 的代码,以及修复代码。

安装使用方法:

{8:29}~/develop ➭ go get golang.org/dl/go1.16.6
go: downloading golang.org/dl v0.0.0-20210712223153-a48f8af6a227
{8:29}~/develop ➭ go1.16.6 download
Downloaded   0.0% (     3266 / 130220543 bytes) ...
Downloaded   2.1% (  2752496 / 130220543 bytes) ...
Downloaded   8.2% ( 10698672 / 130220543 bytes) ...
Downloaded  14.5% ( 18939760 / 130220543 bytes) ...
Downloaded  21.9% ( 28508080 / 130220543 bytes) ...
Downloaded  28.7% ( 37355440 / 130220543 bytes) ...
Downloaded  34.0% ( 44220080 / 130220543 bytes) ...
Downloaded  40.1% ( 52232032 / 130220543 bytes) ...
Downloaded  47.0% ( 61226544 / 130220543 bytes) ...
Downloaded  53.9% ( 70188592 / 130220543 bytes) ...
Downloaded  59.9% ( 78003632 / 130220543 bytes) ...
Downloaded  66.4% ( 86523280 / 130220543 bytes) ...
Downloaded  72.1% ( 93879840 / 130220543 bytes) ...
Downloaded  77.5% (100973888 / 130220543 bytes) ...
Downloaded  85.7% (111590608 / 130220543 bytes) ...
Downloaded  91.5% (119143168 / 130220543 bytes) ...
Downloaded  97.4% (126860416 / 130220543 bytes) ...
Downloaded 100.0% (130220543 / 130220543 bytes)
Unpacking /Users/maiyang/sdk/go1.16.6/go1.16.6.darwin-amd64.tar.gz ...
Success. You may now run 'go1.16.6'
{8:30}~/develop ➭ go version
go version go1.16.5 darwin/amd64
{8:30}~/develop ➭ go1.16.6 version
go version go1.16.6 darwin/amd64


详细链接

[1] go/issues/47143: https://github.com/golang/go/issues/47143


点击阅读原文,直接查看 go/issues/47143



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存